Windows + PyCharm + 服务器 + 远程开发(多图预警) 您所在的位置:网站首页 pycharm 卡在启动界面 Windows + PyCharm + 服务器 + 远程开发(多图预警)

Windows + PyCharm + 服务器 + 远程开发(多图预警)

2023-08-11 01:47| 来源: 网络整理| 查看: 265

            (先关注不迷路)在开发计算机视觉任务时,常常需要用到服务器Linux系统以及NVIDIA高性能显卡。通常可以直接在台式机工作站上安装Ubuntu系统,安装NVIDIA显卡驱动,从而在工作站上直接完成任务。然而实际情况是通过自己各自的windows系统电脑,采用ssh远程开发的方式,多个人共同使用同一台服务器,同一台服务器上有多上显卡,这样就可以将资源最大化。我们实验室同学大部分使用的是MobaXterm软件。软件如下图:

mobaxterm软件

这个软件可以实现文件的上传与下载功能,相当于给用户提供了一个远程的交互界面。

在开发小型项目或任务的时候使用这个工具是挺好的,通过在本地写好代码,直接上传到远程服务器,通过python run.py 直接运行即可。也可以直接打开远程服务器的代码,修改之后直接保存修改即可。这种方法适用于简单的文件的修改。但是通常的深度学习任务来说,一套好的代码往往有着很好的代码结构。这个问题我上一篇谈到过。如果要自己从零开始完成一个有如下框架的任务,这个时候仅仅使用MX这个软件就不大合适了,实际上它也能够完成,但效率非常低。

pytorch常用代码结构图

开发这么一个比较复杂的项目是,这个时候需要选择一款合适的IDE(集成开发环境)。过去半年我曾经尝试过很多代码编辑软件,最终发现用起来最顺手的就是Pycharm(专业版)官网可以下载【通过学生认证可以申请一年的免费license(如何申请就不解释了csdn有,如果不申请有30天的体验期)】它的效果是这样式的(这个代码背景秀不秀),哈哈哈,眼睛要瞎了,实际上背景透明度可以调节的,为了给大家看效果,所以才搞成这样的。光有噱头不够,关键是要好用(实际上确实很好用)。

pycharm个性化界面(你值得拥有)

    据说pycharm在美国70%程序员在用,具体广告细节就不谈了,现在描述一下我的使用场景。

    我有一台windows电脑连接了局域网,局域网内有一台多人共同使用的服务器,服务器上装有2张Nvida 的2080ti显卡,由于无法忍受的服务器噪音及散热,服务器被安放在专用机房,我只能通过我的笔记本电脑远程访问服务器。我的python代码写完,便将代码上传至服务器,使用tmux终端执行代码(代码训练48个小时),关掉笔记本电脑回家,48小时之后,笔记本重新连上服务器,恢复tmux终端,查看代码运行结果。

    这一套流程中扮演重要角色的就是pycharm这个软件。下面看一下pycham能提供什么功能。

    实时的代码提示

    自动代码生成

    在线单步调试

    函数跳转

    自定义自己编辑器

    各种便捷的插件

    强大的代码管理功能

    远程编译器使用

    markdown编辑

    代码自动上传与更新

    自动同步到github

    版本控制功能

    文件搜索功能

。。。。。。。。。。。好用的功能太多了,以后其他功能后面更新的时候说。

首先我们先安装pycharm软件,我的平台是windows,(Ubuntu和mac安装类似)下载地址:https://www.jetbrains.com/pycharm/

pycharm远程开发功能仅专业版本有(左),社区版好多功能无法使用

建议安装专业版professional.强烈支持正版,尊重版权。(如果是学生可以申请免费license,其他激活方式就不解释了)

pycharm专业版国内售价(还 挺贵的,一般贵的好用)

下载pycharm专业版,双击打开安装,一直点下一步即可(中间安装目录建议避开系统盘),下一步,直到安装成功。

好了,安装成功了,打开pycharm:第一次安装好之后会让你选一些关于界面风格的东西,风格亮暗两种,按照自己喜欢的来就好了,我这版选择暗色。

打开pycharm

创建一个新工程

(1)选择创建pure python,纯python项目

(2)自定义project保存的位置,路径务必是英文路径,以免出现不可预见的错误

(3)点击小三角,打开下拉列表

选择location中的本地保存地址,最好是个英文路径,我这里是test路径选择好了

这个时候我们要使用到远程服务器的显卡,进行高性能计算,这个时候我就要选择远程服务器的编译器interpreter:方法如下,单机下图中的按钮

单机进行编译器的选择

选择自己想要的编译器,从上到下依次是:

虚拟环境:给工程创建一个虚拟环境,不受系统环境影响,一般不用这个。

conda环境: 使用Anaconda 管理的环境

系统编译器:系统自带的python环境

Pipenv环境: pip管理的虚拟环境,没用过,不太了解

ssh编译器:使用远程服务器开发是必选,我们这里选择它

使用ssh方式连接服务器编译器

输入你的服务器局域网地址,输入该服务器上你的用户名,点下一步

配置新的服务器

    输入该用户名的密码

输入密码点下一步

这个时候,单机下图→_→右边的文件夹就可以访问到服务器中的文件系统。

服务器中你的python编译器

选择服务器中的python解释器

从○2中找到自己的编译器,编译器的路径呢,选择你服务器中miniconda(在这里我首先默认你是使用miniconda 来管理自己的python环境的)

寻找自己的编译器

我在服务器我的账户下使用miniconda 来管理自己环境,这样可以避免很多使用sudo权限的问题。因为miniconda里默认自带pip,conda,所以用起来比较方便的。因为我的服务器已经安装好miniconda了,这里如何安装在服务器安装miniconda我就省略了。

挂个链接:如何安装miniconda传送门:https://blog.csdn.net/jacke121/article/details/79487273

当你安装好miniconda之后,miniconda自动默认给你一个最新python版本目前是python3.6或3.7。

miniconda目录结构

如果你是使用miniconda自带python环境,目录——miniconda>bin>python3.6

/miniconda3/bin/python3.6

如果你是使用自己使用conda创建的其他环境,目录——miniconda>envs>reid(我自己创建命名的环境)>bin>python3.6

/miniconda3/envs/reid/bin/python3.6

介绍的比较详细了,这下大家应该都明白了吧

我这里通常需要自己创建自己的虚拟环境,安装pytorch,opencv,numpy cuda 等包,所以我这里选择自己envs中的编译器。

选择编译器结束,finish

单机finish之后:会到创建界面:考虑到一些安全问题,我这里对我的IP做了一个涂抹,你们那里正常可以显示的。这个时候要对下一个图片画圈部分进行设置:这个选项卡是用来选择你的工程代码在服务器上存放的地址的,默认是存放在tem暂存空间中的,也就是代码运行的时候申请空间给你的程序,等到电脑关机你的代码就不在服务器上了,通常我们是需要调用服务器硬盘中的dataset(数据集)因此这个路径我把它放在我home目录下的coda目录中的Test目录

/home/username/Desktop/CODE/Test(这个目录可以在选择目录的时候单机右键创建)

修改代码映射到服务器目录

实际上就像将本地的工程目录映射到服务器端一样。我在windows上中写的代码 ,通过pycharm IDE实时更新到远程服务器,一般300毫秒自动更新一次

修改结束

单击创建。

创建完成

创建完成之后,pycharm会将远程服务器编译器中的各种包如pytorch,numpy,CV2 ,matplotlib等各种你安装的包自动加载到本地windows的一个目录中,这个时间根据电脑性能网速的不同而不同,每一个工程只在创建第一次时执行加载task.加载效果图如下。

加载library到本地目录

通常compressing这个过程耗时比较长,很多同学在这一步可能就放弃了,实际上等compressing结束之后就不会再次执行这一操作,除非你的服务器编译器安装新的包之后需要手动加载。

压缩library(具体不用理解,pycharm自动完成)

等待compressing过程中我们看一下如何设置pycharm背景:我们以亚丝娜为例

要设置的目标背景图

单击file>settings>Appearance&behavior>Appearance>

toolbar

主题暗色主题对眼睛比较友好吧,实际上pycharm对红绿视觉障碍患者也很友好(功能多,消耗资源也多)。单击Background image 即可选择替换编辑器的背景

换背景设置透明度,这个不宜过高,影响视觉

效果如下:

设置完背景,远程编译器加载到本地pycharm基本上也快结束了。等它indexing(索引)完,编译器应该已经加载到内存中了。不得不说pycharm这款编译器功能强大,同时也意味着比较吃资源,因为它实时监测你的语法错误,实时代码提示,

加载到内存里

可以从下图看到,pycharm已经把远程服务器中的编译器资源加载到本地了。这是它实现代码实时提示的必要操作。

library骨架

在左侧项目栏中右键test,创建opencv文件夹,创建test.py文件。

代码提示,如果有同学的电脑运行本软件比较卡的话,可以先加个内存条

到这里剩下的就可以编程。

我们来测试一下,看pycharm能否正常运行python程序。我想实现用opencv读取一张图片,然后显示出来。

首先先向我的windows电脑Test目录中放入花田.jpg和亚丝娜.jpg。这个时候pycharm,将自动将Test目录下的东西同步到远程服务器。也就是说,pycharm将本地当做一个编程界面。本地里的东西都自动同步映射到远程。PS:如果数据集大的话就不要放在本地了,这一趴以后会说。

自动同步到服务器,目录结构test.py 与图片放在同一个文件夹下,代码中使用相对目录或服务器绝对目录都可以

代码如下:(bilibili对贴源代码好像还不支持呀)

代码

这个时候在test.py这个文件中右键

run test文件

这个时候按道理应该是可以直接输出Nice Girl 对话窗图片的。但是你的电脑报错或者什么都没有运行出来。

问题:没有图像服务器

这是个常见的问题:通常我们喜欢在远程服务器上运行代码,同时我们也有可视化需求,这个时候需要一个X server常用的软件有MobaXterm软件。下载地址:https://mobaxterm.mobatek.net/

点击创建session,选择ssh,输入服务器地址,用户名,ok即可

创建session登陆之后

登陆之后再命令行键入  : echo $DISPLAY   得到 localhost:13.0

得到localhost

不要关闭MobaXterm软件,保持和pycharm一齐开着。

回到pycharm,点击toolbar 中的Run>Edit Configurations

选中test文件,单击下图汇总箭头所指的$符号,增加环境变量

点击$符号

在弹出的对话框中增加DISPLAY 环境变量。DISPLAY   localhost:13.0

指定显示x server 为 localhost :13.0

点击ok,点击apply,ok, 好了,右键重新run test.py

噔噔蹬蹬,终于show出来了:

显示出来了

到这里,这个pycharm 远程开发教程也就结束啦啦,想要壁纸的话,欢迎私信。

如何学习使用pycharm的其他内容?

看官方软件手册:https://www.jetbrains.com/help/pycharm/quick-start-guide.html

该回宿舍了,不说了,如果大家卡在什么地放欢迎在下方留言。我看到会第一时间回复大家。

写在最后:如果你觉得本专栏有用,欢迎点赞   收藏  关注 三连,你们的鼓励,正是我分享的动力。

放两个之前做的demo效果:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有